#ifndef __LCD_DRIVER_H
#define __LCD_DRIVER_H

#ifdef __cplusplus             //告诉编译器，这部分代码按C语言的格式进行编译，而不是C++的
extern "C"{
#endif

/* 包含头文件 */
#include<stdio.h>

// /* 使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令区分线 */ 
// /* 注意设置时STM32内部会右移一位对其! 111110=0X3E */			    
// #define TFT_BASE        ((uint32_t)(0x6C000000 | 0x000007FE))
// #define TFT             ((TFT_TypeDef *) TFT_BASE)

/* 定义屏的大小 */
#define TFT_XMAX 319		//设置TFT屏的大小
#define TFT_YMAX 479

/* 定义颜色的宏 */
#define WHITE          0xFFFF
#define BLACK          0x0000
#define BLUE           0x001F
#define RED            0xF800
#define MAGENTA        0xF81F
#define GREEN          0x07E0
#define CYAN           0x7FFF
#define YELLOW         0xFFE0		 //定义颜色的宏

/* 定义全局变量 */
void TFT_WriteCmd(uint16_t cmd);
void TFT_WriteData(uint16_t dat);

void TFT_Init(uint8_t cs, uint8_t rs, uint8_t rd, uint8_t wr, 
                 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
				 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
				 uint8_t d8, uint8_t d9, uint8_t d10, uint8_t d11,
				 uint8_t d12, uint8_t d13, uint8_t d14, uint8_t d15);

void TFT_SetWindow(uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd);
void TFT_ClearScreen(uint16_t color);

#ifdef __cplusplus             //告诉编译器，这部分代码按C语言的格式进行编译，而不是C++的
}
#endif

#endif

